home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PsL Monthly 1993 December
/
PSL Monthly Shareware CD-ROM (December 1993).iso
/
prgmming
/
dos
/
c
/
pcpilot.exe
/
lha
/
UTY.ASM
< prev
next >
Wrap
Assembly Source File
|
1989-12-30
|
6KB
|
329 lines
; UTY.ASM - Converted from UTY.C using TCC.EXE
;
; From the book "Systems Programming in Turbo C", by Michael J. Young
;
ifndef ??version
?debug macro
endm
endif
?debug S "uty.c"
_TEXT segment byte public 'CODE'
DGROUP group _DATA,_BSS
assume cs:_TEXT,ds:DGROUP,ss:DGROUP
_TEXT ends
_DATA segment word public 'DATA'
d@ label byte
d@w label word
_DATA ends
_BSS segment word public 'BSS'
b@ label byte
b@w label word
?debug C E9BBB16912057574792E63
?debug C E9C884461212423A5C494E434C5544455C737464696F2E68
?debug C E900101D1113423A5C494E434C5544455C7374646172672E68
?debug C E900101D1110423A5C494E434C5544455C646F732E68
?debug C E99A7D521210423A5C494E434C5544455C7363722E68
_BSS ends
_DATA segment word public 'DATA'
dw 108
dw 64
dw 112
dw 64
_DATA ends
_TEXT segment byte public 'CODE'
?debug C E800057574792E63BBB16912
?debug L 10
_UtyClockCount proc near
?debug B
push bp
mov bp,sp
push si
push di
?debug C E318000200150604
?debug C E605436F756E74180A0400
?debug B
?debug L 17
call near ptr _UtyEnabled
mov si,ax
?debug L 19
cli
?debug L 20
les bx,dword ptr DGROUP:d@
mov dx,word ptr es:[bx+2]
mov ax,word ptr es:[bx]
mov bx,word ptr [bp+4]
mov word ptr [bx+2],dx
mov word ptr [bx],ax
?debug L 21
les bx,dword ptr DGROUP:d@+4
mov al,byte ptr es:[bx]
mov ah,0
mov di,ax
?debug L 22
or si,si
je @2
?debug L 23
sti
@2:
?debug L 24
mov ax,di
jmp short @1
@1:
?debug L 25
pop di
pop si
pop bp
ret
?debug C E319000400160800
?debug C E31A000400160600
?debug C E608526F6C6C6F76657204040707456E61626C65+
?debug C 6404040606526F6C50747219000002040006436E+
?debug C 745074721A000002000005436F756E74180A0400
?debug E
?debug E
_UtyClockCount endp
?debug L 28
_UtyEnabled proc near
?debug B
?debug B
?debug L 30
pushf
?debug L 31
pop ax
?debug L 32
and ax, 0200h
jmp short @3
@3:
?debug L 34
ret
?debug E
?debug E
_UtyEnabled endp
?debug L 37
_UtyTime proc near
?debug B
push bp
mov bp,sp
?debug C E31B000200150404
?debug C E60A48756E647265647468731B0A0A0007536563+
?debug C 6F6E64731B0A0800074D696E757465731B0A0600+
?debug C 05486F7572731B0A0400
?debug B
?debug L 39
mov ah,44
?debug L 40
int 33
?debug L 41
mov al,ch
mov ah,0
mov bx,word ptr [bp+4]
mov word ptr [bx],ax
?debug L 42
mov al,cl
mov ah,0
mov bx,word ptr [bp+6]
mov word ptr [bx],ax
?debug L 43
mov al,dh
mov ah,0
mov bx,word ptr [bp+8]
mov word ptr [bx],ax
?debug L 44
mov al,dl
mov ah,0
mov bx,word ptr [bp+10]
mov word ptr [bx],ax
@4:
?debug L 45
pop bp
ret
?debug C E60A48756E647265647468731B0A0A0007536563+
?debug C 6F6E64731B0A0800074D696E757465731B0A0600+
?debug C 05486F7572731B0A0400
?debug E
?debug E
_UtyTime endp
?debug L 47
_UtyTimeString proc near
?debug B
push bp
mov bp,sp
sub sp,8
?debug C E31C000200150204
?debug C E6065461726765741C0A0400
?debug B
?debug L 51
lea ax,word ptr [bp-2]
push ax
lea ax,word ptr [bp-4]
push ax
lea ax,word ptr [bp-6]
push ax
lea ax,word ptr [bp-8]
push ax
call near ptr _UtyTime
add sp,8
?debug L 52
push word ptr [bp-2]
push word ptr [bp-4]
push word ptr [bp-6]
push word ptr [bp-8]
mov ax,offset DGROUP:s@
push ax
push word ptr [bp+4]
call near ptr _sprintf
add sp,12
@5:
?debug L 53
mov sp,bp
pop bp
ret
?debug C E60A48756E647265647468730402FEFF07536563+
?debug C 6F6E64730402FCFF074D696E757465730402FAFF+
?debug C 05486F7572730402F8FF065461726765741C0A04+
?debug C 00
?debug E
?debug E
_UtyTimeString endp
?debug L 55
_UtyBlank proc near
?debug B
push bp
mov bp,sp
push si
?debug C E6064C656E677468040A060006537472696E671C+
?debug C 0A0400
?debug B
?debug L 59
cmp word ptr [bp+6],1
jge @7
jmp short @6
@7:
?debug L 61
xor si,si
jmp short @11
@10:
?debug L 62
mov bx,word ptr [bp+4]
mov byte ptr [bx+si],32
@9:
inc si
@11:
mov ax,word ptr [bp+6]
dec ax
cmp ax,si
jg @10
@8:
?debug L 63
mov bx,word ptr [bp+4]
mov byte ptr [bx+si],0
@6:
?debug L 64
pop si
pop bp
ret
?debug C E60169040406064C656E677468040A0600065374+
?debug C 72696E671C0A0400
?debug E
?debug E
_UtyBlank endp
_TEXT ends
_BSS segment word public 'BSS'
db 256 dup (?)
_BSS ends
_TEXT segment byte public 'CODE'
?debug L 66
_UtyRepeat proc near
?debug B
push bp
mov bp,sp
push si
?debug C E6024368020A0600064E756D626572040A0400
?debug B
?debug L 69
xor si,si
jmp short @13
@15:
?debug L 72
mov al,byte ptr [bp+6]
mov byte ptr DGROUP:b@[si],al
inc si
@13:
?debug L 71
mov ax,word ptr [bp+4]
dec word ptr [bp+4]
or ax,ax
je @16
cmp si,255
jl @15
@16:
@14:
?debug L 73
mov byte ptr DGROUP:b@[si],0
?debug L 74
mov ax,offset DGROUP:b@
jmp short @12
@12:
?debug L 75
pop si
pop bp
ret
?debug C E31D0000011A02
?debug C E60169040406034275661D000003000002436802+
?debug C 0A0600064E756D626572040A0400
?debug E
?debug E
_UtyRepeat endp
_TEXT ends
?debug C E9
_DATA segment word public 'DATA'
s@ label byte
db 37
db 48
db 50
db 100
db 58
db 37
db 48
db 50
db 100
db 58
db 37
db 48
db 50
db 100
db 46
db 37
db 48
db 50
db 100
db 0
_DATA ends
_TEXT segment byte public 'CODE'
extrn _sprintf:near
_TEXT ends
public _UtyClockCount
public _UtyTimeString
public _UtyRepeat
public _UtyEnabled
public _UtyBlank
public _UtyTime
?debug C EA0109
?debug C E31E00000023040000
?debug C EC0E5F557479436C6F636B436F756E741E18
?debug C E31F00000023010000
?debug C EC0E5F55747954696D65537472696E671F18
?debug C E320000000231C0000
?debug C EC0A5F5574795265706561742018
?debug C E32100000023040000
?debug C EC0B5F557479456E61626C65642100
?debug C E32200000023010000
?debug C EC095F557479426C616E6B2218
?debug C E32300000023040001
?debug C EB085F737072696E746623
?debug C E32400000023010000
?debug C EC085F55747954696D652418
?debug C E60673697A655F740A060666706F735F740606
end